package cn.chinaflame.pagodas.req;

import cn.chinaflame.pagodas.enums.CodeEnum;
import cn.chinaflame.pagodas.utils.ParamPreconditions;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author wwt
 * @date 2018年1月5日 上午9:51:51
 */
public class ProductReq extends BaseReq {
    private String id;                    //商品id
    private String name;                //商品名称
    private String productTypeId;        //商品类别id
    private String itemId;                //商品所属项目id
    private String areaId;                //商品所在区域id
    private String positionId;            //商品所在位置id
    private String greetingsId;           //祝福语ID
    private Integer number;                //商品库存
    private BigDecimal price;            //商品价格（单位：元）保留两位小数
    private String state;                //使用状态：0-启用；1-弃用
    private BigDecimal dayOne;            //祈福灯一天的价格（单位：元）保留两位小数
    private BigDecimal dayThree;        //祈福灯三天的价格（单位：元）保留两位小数
    private BigDecimal dayWeek;            //祈福灯一周的价格（单位：元）保留两位小数
    private BigDecimal dayMonth;        //祈福灯一月的价格（单位：元）保留两位小数
    private BigDecimal dayQuarter;        //祈福灯一季度的价格（单位：元）保留两位小数
    private BigDecimal dayHalfYear;        //祈福灯半年的价格（单位：元）保留两位小数
    private BigDecimal dayYear;            //祈福灯一年的价格（单位：元）保留两位小数
    private String addTime;                //上架时间
    private String shelfTime;            //下架时间
    private BigDecimal costPrice;        //成本价
    private String description;             //商品描述
    private String praying;                 //商品祈愿文
    private String subCommodity;            //子商品编号
    private String commodityType;           //商品类型
    private String facialPhoto;             //头像照片
    private String certificatePhoto;        //证书照片
    private String createtime;            //创建时间
    private String updatetime;            //更新时间
    private List<Map<String, Object>> termList;// 期限，价格

    /**
     * new_edition新增属性
     */
    private String positionIds;            //位置信息，支持多个位置，格式 : 123,...
    private String pointIds; //行列信息，与位置id对应，格式0103:0104,...;0103:0104,...


    public ProductReq() {
        super();
    }

    @Override
    public void check() {
        ParamPreconditions.checkNotEmpty(name, CodeEnum.FAIL.getCode(), "商品名称不能为空");
        ParamPreconditions.checkNotEmpty(productTypeId, CodeEnum.FAIL.getCode(), "商品类别id不能为空");
//		ParamPreconditions.checkNotEmpty(itemId, CodeEnum.FAIL.getCode(), "商品所属项目id不能为空");
//		ParamPreconditions.checkNotEmpty(areaId, CodeEnum.FAIL.getCode(), "商品所在区域id不能为空");
/*		ParamPreconditions.checkNotNull(number, CodeEnum.FAIL.getCode(), "商品库存不能为空");
		ParamPreconditions.checkNotNull(price, CodeEnum.FAIL.getCode(), "商品价格不能为空");
		ParamPreconditions.checkNotNull(dayOne, CodeEnum.FAIL.getCode(), "祈福灯一天的价格不能为空");
		ParamPreconditions.checkNotNull(dayThree, CodeEnum.FAIL.getCode(), "祈福灯三天的价格不能为空");
		ParamPreconditions.checkNotNull(dayWeek, CodeEnum.FAIL.getCode(), "祈福灯一周的价格不能为空");
		ParamPreconditions.checkNotNull(dayMonth, CodeEnum.FAIL.getCode(), "祈福灯一月的价格不能为空");
		ParamPreconditions.checkNotNull(dayQuarter, CodeEnum.FAIL.getCode(), "祈福灯一季度的价格不能为空");
		ParamPreconditions.checkNotNull(dayHalfYear, CodeEnum.FAIL.getCode(), "祈福灯半年的价格不能为空");
		ParamPreconditions.checkNotNull(dayYear, CodeEnum.FAIL.getCode(), "祈福灯一年的价格不能为空");
		ParamPreconditions.checkNotEmpty(addTime, CodeEnum.FAIL.getCode(), "上架时间不能为空");
		ParamPreconditions.checkNotEmpty(shelfTime, CodeEnum.FAIL.getCode(), "下架时间不能为空");
		ParamPreconditions.checkNotNull(costPrice, CodeEnum.FAIL.getCode(), "成本价不能为空");
*/
        //super.check();

        /**新增位置格式校验*/
//        ParamPreconditions.checkNotEmpty(positionIds, CodeEnum.FAIL.getCode(), "位置信息不能为空");
    }

    public String getPointIds() {
        return pointIds;
    }

    public void setPointIds(String pointIds) {
        this.pointIds = pointIds;
    }

    public String getPositionIds() {
        return positionIds;
    }

    public void setPositionIds(String positionIds) {
        this.positionIds = positionIds;
    }

    /**
     * 商品id
     *
     * @param id
     */
    public String getId() {
        return id;
    }

    /**
     * 商品id
     *
     * @return
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 商品名称
     *
     * @param name
     */
    public String getName() {
        return name;
    }

    /**
     * 商品名称
     *
     * @return
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 商品类别id
     *
     * @param productTypeId
     */
    public String getProductTypeId() {
        return productTypeId;
    }

    /**
     * 商品类别id
     *
     * @return
     */
    public void setProductTypeId(String productTypeId) {
        this.productTypeId = productTypeId;
    }

    /**
     * 商品所属项目id
     *
     * @param itemId
     */
    public String getItemId() {
        return itemId;
    }

    /**
     * 商品所属项目id
     *
     * @return
     */
    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    /**
     * 商品所在区域id
     *
     * @param areaId
     */
    public String getAreaId() {
        return areaId;
    }

    /**
     * 商品所在区域id
     *
     * @return
     */
    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    /**
     * 商品所在位置id
     *
     * @param positionId
     */
    public String getPositionId() {
        return positionId;
    }

    /**
     * 商品所在位置id
     *
     * @return
     */
    public void setPositionId(String positionId) {
        this.positionId = positionId;
    }

    public String getGreetingsId() {
        return greetingsId;
    }

    public void setGreetingsId(String greetingsId) {
        this.greetingsId = greetingsId;
    }

    /**
     * 商品库存
     *
     * @param number
     */
    public Integer getNumber() {
        return number;
    }

    /**
     * 商品库存
     *
     * @return
     */
    public void setNumber(Integer number) {
        this.number = number;
    }

    /**
     * 商品价格（单位：元）保留两位小数
     *
     * @param price
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * 商品价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * 使用状态：0-启用；1-弃用
     *
     * @param state
     */
    public String getState() {
        return state;
    }

    /**
     * 使用状态：0-启用；1-弃用
     *
     * @return
     */
    public void setState(String state) {
        this.state = state;
    }

    /**
     * 祈福灯一天的价格（单位：元）保留两位小数
     *
     * @param dayOne
     */
    public BigDecimal getDayOne() {
        return dayOne;
    }

    /**
     * 祈福灯一天的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayOne(BigDecimal dayOne) {
        this.dayOne = dayOne;
    }

    /**
     * 祈福灯三天的价格（单位：元）保留两位小数
     *
     * @param dayThree
     */
    public BigDecimal getDayThree() {
        return dayThree;
    }

    /**
     * 祈福灯三天的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayThree(BigDecimal dayThree) {
        this.dayThree = dayThree;
    }

    /**
     * 祈福灯一周的价格（单位：元）保留两位小数
     *
     * @param dayWeek
     */
    public BigDecimal getDayWeek() {
        return dayWeek;
    }

    /**
     * 祈福灯一周的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayWeek(BigDecimal dayWeek) {
        this.dayWeek = dayWeek;
    }

    /**
     * 祈福灯一月的价格（单位：元）保留两位小数
     *
     * @param dayMonth
     */
    public BigDecimal getDayMonth() {
        return dayMonth;
    }

    /**
     * 祈福灯一月的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayMonth(BigDecimal dayMonth) {
        this.dayMonth = dayMonth;
    }

    /**
     * 祈福灯一季度的价格（单位：元）保留两位小数
     *
     * @param dayQuarter
     */
    public BigDecimal getDayQuarter() {
        return dayQuarter;
    }

    /**
     * 祈福灯一季度的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayQuarter(BigDecimal dayQuarter) {
        this.dayQuarter = dayQuarter;
    }

    /**
     * 祈福灯半年的价格（单位：元）保留两位小数
     *
     * @param dayHalfYear
     */
    public BigDecimal getDayHalfYear() {
        return dayHalfYear;
    }

    /**
     * 祈福灯半年的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayHalfYear(BigDecimal dayHalfYear) {
        this.dayHalfYear = dayHalfYear;
    }

    /**
     * 祈福灯一年的价格（单位：元）保留两位小数
     *
     * @param dayYear
     */
    public BigDecimal getDayYear() {
        return dayYear;
    }

    /**
     * 祈福灯一年的价格（单位：元）保留两位小数
     *
     * @return
     */
    public void setDayYear(BigDecimal dayYear) {
        this.dayYear = dayYear;
    }

    /**
     * 上架时间
     *
     * @param addTime
     */
    public String getAddTime() {
        return addTime;
    }

    /**
     * 上架时间
     *
     * @return
     */
    public void setAddTime(String addTime) {
        this.addTime = addTime;
    }

    /**
     * 下架时间
     *
     * @param shelfTime
     */
    public String getShelfTime() {
        return shelfTime;
    }

    /**
     * 下架时间
     *
     * @return
     */
    public void setShelfTime(String shelfTime) {
        this.shelfTime = shelfTime;
    }

    /**
     * 成本价
     *
     * @param costPrice
     */
    public BigDecimal getCostPrice() {
        return costPrice;
    }

    /**
     * 成本价
     *
     * @return
     */
    public void setCostPrice(BigDecimal costPrice) {
        this.costPrice = costPrice;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPraying() {
        return praying;
    }

    public void setPraying(String praying) {
        this.praying = praying;
    }

    public String getSubCommodity() {
        return subCommodity;
    }

    public String getCommodityType() {
        return commodityType;
    }

    public void setSubCommodity(String subCommodity) {
        this.subCommodity = subCommodity;
    }

    public void setCommodityType(String commodityType) {
        this.commodityType = commodityType;
    }

    public String getFacialPhoto() {
        return facialPhoto;
    }

    public void setFacialPhoto(String facialPhoto) {
        this.facialPhoto = facialPhoto;
    }

    public String getCertificatePhoto() {
        return certificatePhoto;
    }

    public void setCertificatePhoto(String certificatePhoto) {
        this.certificatePhoto = certificatePhoto;
    }

    /**
     * 创建时间
     *
     * @param costPrice
     */
    public String getCreatetime() {
        return createtime;
    }

    /**
     * 创建时间
     *
     * @return
     */
    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }

    /**
     * 更新时间
     *
     * @param costPrice
     */
    public String getUpdatetime() {
        return updatetime;
    }

    /**
     * 更新时间
     *
     * @return
     */
    public void setUpdatetime(String updatetime) {
        this.updatetime = updatetime;
    }

    public List<Map<String, Object>> getTermList() {
        return termList;
    }

    public void setTermList(List<Map<String, Object>> termList) {
        this.termList = termList;
    }


}
